package controle;

import java.util.List;

import modelo.bean.Prova;
import modelo.dao.GenericoDAO;
import modelo.dao.impl.ProvaDAOImpl;

public class ProvaControle {

	private Prova prova;
	private List<Prova> listaDeProvas;

	private ProvaDAOImpl provaDAOImpl;
	private GenericoDAO genericoDAO;

	public ProvaControle(Prova prova) {
		this.prova = prova;
		DAOdeProva();
	}

	private void DAOdeProva() {
		if (prova == null) {
			prova = new Prova();
		}
		if (provaDAOImpl == null) {
			provaDAOImpl = new ProvaDAOImpl(prova);
		}
		genericoDAO = provaDAOImpl;
		genericoDAO.changeSeed(prova);
	}

	public boolean criar() {
		return genericoDAO.criar();
	}

	public Prova find(Long id) {
		prova = (Prova) genericoDAO.recuperar(id);
		return prova;
	}

	@SuppressWarnings("unchecked")
	public List<Prova> listarTodos() {
		return (List<Prova>) genericoDAO.listarTodos();
	}

	public boolean excluir(Long id) {
		prova = (Prova) genericoDAO.recuperar(id);
		return genericoDAO.deletar();
	}

	public boolean alterar(Prova p) {
		prova = p;
		return genericoDAO.editar();
	}

	public Prova getProva() {
		return prova;
	}

	public void setProva(Prova prova) {
		this.prova = prova;
	}

	public List<Prova> getListaDeProvas() {
		return listaDeProvas;
	}

	public void setListaDeProvas(List<Prova> listaDeProvas) {
		this.listaDeProvas = listaDeProvas;
	}
}
